删除链表的重复节点
思路：就是定义一个头节点，然后2个指针，遍历链表  
class Solution {
public:
    ListNode* deleteDuplication(ListNode* pHead) {
        if(pHead==nullptr)
            return nullptr;
        //定义一个头节点  便于操作
        ListNode* head=new ListNode(-1);
        head->next=pHead;
        ListNode* prev=head;
        ListNode* cur=pHead;
        while(cur)
        {
            //判断当前节点和有一个节点的值是否相等。
            if(cur->next&&cur->val==cur->next->val)
            {
                while(cur->next&&cur->val==cur->next->val)
                {
                    cur=cur->next;
                }
                cur=cur->next;
                prev->next=cur;
            }
            else
            {
                prev=cur;
                cur=cur->next;
            }
        }
        return head->next;
    }
};